Intelligent identification of multimedia content for grouping

ABSTRACT

An intelligent synchronization tool ensures access to desired content in a manner that automatically keeps the content current on the portable media device. A variation threshold or user-specified degree of content variation may be introduced among content downloaded to a user&#39;s mobile device to prevent the user from becoming bored. Furthermore, intelligent synchronization may automatically populate the portable media device with popular content to save a user time and/or use passive monitoring techniques to ascertain a user&#39;s preferences for subsequent population.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.14/164,607, filed Jan. 27, 2014, which is a continuation of U.S.application Ser. No. 13/620,541, filed Sep. 14, 2012, which is acontinuation of U.S. application Ser. No. 13/434,457, filed Mar. 29,2012, which is now issued as U.S. Pat. No. 8,393,544, which is acontinuation of U.S. application Ser. No. 12/365,313, filed Feb. 4,2009, which is now issued as U.S. Pat. No. 8,146,826, which is acontinuation of U.S. application Ser. No. 11/025,592, filed Dec. 30,2004, which is now issued as U.S. Pat. No. 7,490,775. Each of theaforementioned patent(s) and application (s) are hereby incorporated byreference in their entirety.

TECHNICAL FIELD

This document relates to managing content on an electronic device.

BACKGROUND

Digital content is distributed on a wide variety of devices and in awide variety of formats, and frequently includes one or more of movies,music, slides, games and other forms of electronic content.

SUMMARY

In one general sense, content may be managed on a portable media deviceby identifying a library of one or more content selections, accessingone or more rules related to user preferences for content, structuringthe library of one or more content selections based on the rules todefine at least one group of content selections of interest to the user,determining a storage capability for a portable media device, generatinga first configuration for the portable media device, wherein the firstconfiguration indicates a first subset of content selections from amongthe group of content selections of interest to be loaded to the portablemedia device, accessing one or more additional rules related to userpreferences requiring variation of content to be loaded to the portablemedia device, and during a subsequent connection between the portablemedia device and the library, generating a second configuration for theportable media device, wherein the second configuration indicates asecond subset of content selections from among the group of contentselections of interest to be loaded to the portable media device, thesecond subset differing from the first subset in accordance with the oneor more additional rules requiring variation of the content selectionsloaded to the portable media device.

Implementations may include one or more of the following features. Forexample, the library may be dynamic such that the group of contentselections changes between the generation of the first configuration andgeneration of the second configuration, and the user preferences varythe content selections based on criteria other than the dynamic statusof the library. Determining the storage capability may includedetermining the storage capability that reflects an entire physicalstorage capacity of the portable media device. Determining the storagecapability may include determining the storage capability that reflectsa portion a physical storage capacity of the portable media deviceallocated to playlist storage. The rules requiring variation may includea variation threshold. The variation threshold may be expressed as adesired rate of change for content defining the group of contentavailable to be loaded. The variation threshold may be expressed as adesired percentage of change for content defining the group of contentavailable to be loaded and/or with respect to one partition on aportable media device with multiple partitions. Each of the multiplepartitions may have a different variation threshold. A user interfacemay be presented to enable user input of the rules requiring variation.The user may be solicited to specify a rule to be designated as therules related to the user preferences. Accessing the rules related tothe user preferences may include accessing a service-provider rule or adefault rule. Accessing the rules related to the user preferences mayinclude accessing a storage instruction configured to allocatepartitions on the portable media device. Accessing the storageinstruction may include allocating partitions by absolute criteria,relative criteria, or a combination of relative criteria and absolutecriteria.

Accessing the storage instruction may include specifying a preferencefor a genre, an artist, an album, an actor, an author, a director, astudio, a record label, a tempo, a mood, a station, a channel, or acontent provider. Specifying the preference may include specifying anabsolute preference, a relative preference, a factoral preference, afrequency preference, a boolean preference, a personal preference, ahousehold preference, or a demographic preference. Accessing the rulesrelated to user preferences may include specifying an update basisindicating how the portable media device should be updated. Specifyingthe update basis may include specifying that the portable media deviceshould vary content every synchronization, every day, every week, afterevery content selection on the portable media device has been perceived,after a particular content selection on the portable media device hasbeen perceived, or when a replacement selection becomes available.Accessing the rules related to user preferences may include specifyinghow the portable media device should operate in the event that theportable media device exhausts storage or is projected to exhauststorage. Accessing the rules related to user preferences may includeaccessing a promotional instruction configured to include at least somepromotional content on the portable media device. Accessing thepromotional instruction may include establishing a transaction gatewayso that the user may interact with the promotional content on theportable media device to initiate a transaction upon a subsequentcommunication with the portable media device.

Generating the first configuration may include determining, for one ormore content selections, a metric indicating a predicted user interest,relating the metrics to determine a relative priority for the contentselection, using intercontent selection factors to adjust the metric,identifying a conflict between two different content selections havingthe same relative priority, resolving the conflict, and identifying aselected subset of content selections from the library that should beloaded to the portable media device. Using intercontent selectionfactors may include increasing a first metric for a first contentselection when a user prefers a second content selection and the secondcontent selection is determined to be related to the first contentselection. The second content selection may be determined to be relatedto the first content selection when the first content and the secondcontent selection are associated with a same genre, a same artist, asame album, a desired transition, a desired mood, a desired balance ofcontent, a desired tempo, or a desired advertisement placement.Resolving the conflict may include removing a first content selection infavor of a second content selection or identifying content moreresponsive to the user interest that complies with the storagecapability.

DESCRIPTION OF DRAWINGS

FIG. 1 illustrates an exemplary user interface (UI) enabling a user tomanage content on a portable media device.

FIG. 2 illustrates an exemplary UI enabling a user to manage content ona portable media device using more detailed metrics.

FIG. 3A illustrates an exemplary UI configured to enable a user toallocate partitions of content on a portable media device.

FIG. 3B illustrates an exemplary UI enabling a user to allocate storageon a portable media device using preferences for different demographics.

FIG. 3C illustrates an exemplary UI enabling a user to specify variationthresholds for a portable media device.

FIG. 4 illustrates an exemplary UI enabling a user to allocate storageon a portable media device in the event that memory is exhausted.

FIG. 5 is a block diagram of a communications system that includes aportable media device that may access content on a client and a host.

FIG. 6 is a block diagram of a content management system for a portablemedia device.

FIG. 7 is a flow chart of an exemplary process by which contentselections are loaded to a portable media device.

FIG. 8 is a flow chart of an exemplary process by which a client loadscontent to a portable media device.

DETAILED DESCRIPTION

Portable media devices, such as Apple Computer's iPod and Creative Labs'Nomad, are wildly popular. They can support audio, video, and other richmedia formats (e.g., games). One challenge is that a user's libraryoften is larger than the storage on the portable media device. Evenportable media devices with the largest storage capabilities areinadequate for many users. And adding support for video or elaboratemultichannel formats such as SACD/DVD-Audio would drastically reduce aportable media device's ability to support a listener's library. Furtherconfounding the situation, many users prefer smaller devices (e.g., aniPod mini (4 GB, 1,000 songs) or Rhomba (256 MB)) with less storage,thus, storage constraints are reached earlier on smaller devices.

Given the above storage and other constraints, many users are only ableto load a portion of their library. Managing a library/playlist for aportable media device can be time consuming and tedious. Furthermore, ifthe user does not vary the content on the portable media device, theuser may become bored ‘playing’ the same content repeatedly and usersatisfaction/interest may diminish.

Thus, an intelligent synchronization tool ensures access to desiredcontent in a manner that automatically keeps the content current on theportable media device. In some implementations, a threshold oruser-specified degree of content variation may be introduced amongcontent downloaded to a user's mobile device to prevent the user frombecoming bored. Furthermore, intelligent synchronization mayautomatically populate the portable media device with popular content tosave a user time and/or use passive monitoring techniques to ascertain auser's preferences for subsequent population.

More particularly, in loading content to a portable media device, theportable media device uses rules and metrics to identify a subset ofcontent to be loaded from a library to a larger media device. Forexample, a personal computer with a large collection of digitized may beused to manage a portable audio player. The personal computer mayinclude a configuration wizard that elicits a user's preferences. Thelibrary is structured based on the rules to define groups of contentresponsive to a user's interests (e.g., rock and country).

The personal computer recognizes that portable audio player is limitedto a threshold of storage. In order to maximize the enjoyment of contentloaded to the portable audio player, a first configuration is generatedfor the portable media device. The first configuration indicates a firstsubset of content selections from among the groups of content to beloaded to the portable media device. For example, particular rockselections may be loaded to a rock partition and particular countryselections may be loaded to the country selections. One or moreadditional rules related to user preferences requiring variation ofcontent are accessed. For example, the user may specify that 30% of therock selections and 20% of the country selections be varied everysynchronization. And, during a subsequent connection between theportable audio player and the computer, a second configuration is loadedto the portable audio player that reflects one or more user preferencesfor varying the content selections on the portable audio player. As aresult, 30% of the rock selections and 20% of the country selections arereplaced with content selections not present in the first configuration.

In another example, a user's rules may provide for three classes ofcontent. The classes may include (1) a most popular class occupying 50%of storage for songs that a user is known to prefer; (2) a“used-to-like” bin for songs the user used to enjoy frequently butperhaps only now enjoys on a limited basis; and (3) a “sample” bin ofpromotional content or previously unheard content to elicit userreaction, explore changing tastes, or generate a purchase transaction.As the user listens to their portable media device, the content indifferent classes of content may be varied while still preserving thenature of the classes. For example, while the content in the mostpopular class may vary, the content in the most popular class isdetermined to be the user's preferred content. The rules also may definehow and which content is presented in a playlist (e.g., preserve a themeor artist) or how the playlist is generated in response to usermanipulation of the portable media device (e.g., next track controls).As the user synchronizes at a later time, the content selections on theportable media device may be updated so that (1) songs from the mostpopular class are removed according to criteria such as a predefinedratio of threshold of change (e.g., a variation threshold) specified bythe user (e.g., 10% of the music shall be changed each update) orchanges in user preference; (2) “used-to-like” songs are added andremoved in accordance with a variation function and changing usertastes; (3) promotional content is removed if the user elects not totake advantage of or accept the promotion; and (4) new promotionalcontent is added as a result of new promotions.

FIG. 1 illustrates an exemplary user interface UI 100 enabling a user tomanage content on a portable media device. UI 110 includes a librarymanager interface 110, a portable media device interface 120, and amiscellaneous interface 130. Typically, the library manager interface110 and the portable media device interface 120 enable a user toascertain a relationship between content selections loaded on a libraryand those loaded on a portable media device. The miscellaneous interface130 also includes controls that affect the relationship between thelibrary and the portable media device, for example, by specifyingadditional criteria by which content is populated.

Library manager interface 110 provides a high level overview of contentresiding on a user's PC (as indicated by the PC (Personal Computer)label that consumes 30 GB of storage). As shown, each of the descriptorsappears as a hyperlinked label. Typically, each of the hyperlinkedlabels may be invoked (e.g., via selection using a mouse pointer device)to retrieve additional information and/or change the value shown. Forexample, the Disco label may be selected to render a popup display ofcontent selections stored in the library determined to be affiliatedwith Disco. Library manager interface 110 indicates that the libraryincludes 15 GB of country, 5 GB of Disco, 2 GB of 70's music, and 8 GBof Books on Tape.

Portable media device interface 120 indicates that the user's portablemedia device has 20 GB of storage. The portable media device includes 10GB of Country, 2 GB of Disco, 2 GB of 70's music, and 1 GB ofpromotional content. Portable media device interface 120 includeshyperlinked labels to describe the allocation of storage and the genreof content. However, rather than render information descriptive of theunderlying content as library manager interface 110 would likely do, thelabels appearing in portable media device interface 120 also may be usedto change the allocation of storage or the genre for a particularallocation.

Miscellaneous interface 130 includes tabs to (1) “Keep books that I'vestarted” 130A; (2) include promotional content 130B; (3) track portablemedia device usage 130C; and (4) fill the radio station for auser-specified number of minute 130Ds. “Keep books that I've started”130A represents a control that may be invoked that enables a user tokeep listening to an electronic audio book that the user has started,even when other content selections are being added and removed.Including promotional content 130B enables a user to participate inpromotional offerings. The user may be allowed limited access topromotional content in order to induce the user to accept purchasecriteria. Tracking portable media device usage 130C allows userpreferences to be tracked so that the portable media device may bepopulated with content responsive to the predicted interest of a user.In addition, the portable media device may be populated with contentfrom an online radio station for a user-specified number of minutes.Selecting one or more miscellaneous options appearing in themiscellaneous interface may impact which and how much content may beloaded from the library to the portable media device. For example,selecting inclusion of promotional content and/or filling the portablemedia device with content from a radio station 130D may reduce an amountof storage available on the portable media device. As a result, an entryresponsive to the selection may appear (e.g., the portable media devicehas 1 GB of storage) and also reduce the size of storage allocated forother genres (e.g., the amount of storage allocated for country may beautomatically reduced from 11 GB (not shown) to 10 GB as shown). Otherexamples of reducing the storage for other content selections includeremoving the most recently listened to content, removing the leastpopular content, removing content uniformly from more than one genre,removing content from a disfavored genre, and/or removing content basedon its relation or lack of relation to other content on the portablemedia device.

FIG. 2 illustrates an exemplary UI 200 enabling a user to manage contenton a portable media device using more detailed metrics. UI 200 includesa playlisting interface 210, a variation interface 220, and a ruleinterface 230.

Playlisting interface 210 allows the content management system togenerate one or more automated playlists for the portable media device.As indicated, using playlist interface 210, a user may “generatesequence selection” options that invoke a mood-based playlisting system210A, generate multiple sequences of content 210B, and/or mix themes210C. Invoking a mood-based playlisting system 210A enables a contentmanagement system to select content in an automated manner determined topreserve a mood, and thus increase listener retention rates between twocontent selections. Various mood-based playlisting systems are describedin U.S. application Ser. No. 10/448,469, and Ser. No. 10/448,316, bothof which were filed on May 30, 2003. Generating multiple sequences ofcontent 210B enables multiple playlists to be generated. For example, afirst playlist may present songs in a particular order using a firstmodel while a second playlist may present songs in a different orderusing a second model. Mixing themes 210C enables content selections withdifferent characteristics to be interspersed. For example, a defaultplaylisting engine may avoid presenting a hip hop content selectionafter a country content selection. However, the “Mix themes” button maybe invoked so that the playlist may be assembled from across genres orinclude content selections otherwise determined to include incompatiblecharacteristics.

Variation interface 220 enables the user to specify the frequency withwhich content loaded on the portable media device is varied. Forinstance, as shown, variation interface 220 enables the user to changeat least some of the content selections on the portable media deviceevery synchronization 220A, every day 220B, every week 220C, or aftersong has been listened to once 220D. Changing the content selectionevery synchronization 220C may be used to replace at least one contentselection loaded on the portable media device with a different contentselection.

In some implementations, even if the variation interface 220 isselected, the content may be varied if the library is not larger thanthe storage available on the portable media device. The degree andextent of the variation may be based on the relation between the size ofthe library and the size of the portable media device, the extent towhich a user has already listened to content selections on the portablemedia device, and/or a user's preferences for an amount of variation.For example, some users may prefer subtle variations (e.g., only vary10% of the content) while other users may prefer more substantialvariations (e.g., vary more than 50% of the content).

Rule interface 230 enables a user to express a preference for whichcontent selection is loaded to the portable media device. Rule interface230 enables a user to specify preferences by theme 230A (e.g., country,disco, or 70's music), by artist 230B (e.g., Brooks & Dunn, GarthBrooks, Randy Travis, Hank Williams Jr., the BeeGees, the VillagePeople, the Eagles, and the Steve Miller Band), by album 230C (e.g., VanHalen I and II, Saturday Night Fever, BeeGees Greatest Hits, and theEagles' Greatest Hits Vols. 1 and 2), and by song 230D (e.g., StayingAlive, Tequila Sunrise, and Already Gone). For each criteria, the usermay elect to (1) prefer the element over everything else; (2) Stronglyfavor; (3) Prefer; (4) indicate that the element is ‘OK’; (5) indicatethat the element is ‘OK’ occasionally; (6) include at least some of theelement (e.g., include at least some songs from the album); (7) includemore of the element (or alternatively, include less); and (8) don'tinclude the element on the portable media device.

Generally, by enabling the user to elect an option for the element, theuser is able to express their preferences without necessarily requiringthe user to quantify the impact of any one rule on whether particularcontent selections will be loaded to the portable media device. Some ofthe options are absolute criteria in that “Prefer over everything else”or include at least some will load content selections associated withthe element to the portable media device and “don't include” precludesthe content selections associated with the element from being loaded tothe portable media device. Other options enable a user to freely expresstheir preferences so that the content management system may assimilatethe use preferences and generate a configuration of content selectionsthat are loaded to the portable media device that is responsive to theuser's preferences as specified by the user.

Enabling the user to express their preferences enables the extent towhich content selections related to the user preference will appear in alibrary on a portable media device as the content is being varied, and aparticular content selection is being rotated on and off of the portablemedia device. For example, while content that is “preferred overeverything else” will almost always appear, “preferred” content may bestored on the portable media device 50% of the time, “OK” content may bestored on the portable media device 25% of the time, and “OKoccasionally may be stored on the portable media device 10% of the time.

FIG. 3A illustrates an exemplary UI 300A configured to enable a user toallocate partitions of content on a portable media device. As shown, UI300A includes partition 310A and partition 340A for a portable mediadevice with 30 GB of storage available. As shown partition 310A enablesthe user to specify the theme for the partition 310A using themepreference interface 315A. Theme preference interface 315A includesoptions for all genres, country, disco, 70's music, books on tape, andan artist partition. Allocation interface 320A enables a user to specifythe storage allocated to a partition. Rules interface 310A enables auser to specify one or more rules that determine which contentselections are loaded to the portable media device. The exemplary rulesshown enable a user to specify (1) all fast tempo; (2) all slow temp;(3) specify the ratio of fast tempo songs to slow tempo songs; (4) usestation 1 or station 2 transitions for the playlist, and select contentselections so that the underlying transitions may be realized; (5)include promotional content; (6) when storage constraints are reached,favor “What's Hot” or the user's preferences (portions of U.S.application Ser. No. 10/715,216, which is incorporated by reference, aredirected to “What's Hot” technologies); or (7) only include wholealbums. Loading content by tempo may be done by accessing a database oftempo information for songs and selecting the content selections usingthe retrieved content. Station transitions may include using establishedtransitions so that a user is less likely to shuffle or change aplaylist. For example, a station transition may specify that Bob Dylanshould be followed by the Grateful Dead. In one sense, the stationtransition relates to a playlist in that the sequence of the content isspecified. In another sense, specifying the station transition requiresthe underlying content selections to be loaded to the portable mediadevice. The storage constraints option enables the user to specify that,when the storage required to support content selections identified bythe user exceed available storage constraints in the partition, thecontent selections identified by the user may favor “What's Hot” forother communities or demographics, or favor what the user prefers.

Similar to the variation interface 220 shown in UI 200, rules 330A allowa user to change content every synchronization, every day, every week,after every song has been listened to, or replace every song listened toonce.

Partition 340A may include options similar to partition 310A except thatpartition 340A may be configured to reflect other preferences for theuser. For example, a user may configure partition 310A to reflect theuser's interest in country music while configuring partition 340A toreflect the user's interest in 70's music.

FIG. 3B illustrates an exemplary UI 300B enabling a user to allocatestorage on a portable media device using preferences for differentdemographics or content types, effectively enabling the user to createdisparate content sources within their portable media storage, each ofwhich being configured to store an enable playback of user-designatedcontent that is periodically updated according to user specifications.UI 300B includes partition 310B, partition 320B, partition 330B, andpartition 340B. Partition 310B enables a user to specify a size ofpartition 310B and to identify the most listened to content selectionsfor (1) the user; (2) the user's household; (3) the user's demographic;(4) the user's neighborhood; and/or (5) all users.

Partition 320B enables a user to specify a size for a “What's Hot”partition, where “What's Hot” is defined for (1) the user; (2) theuser's household; (3) the user's demographic; (4) the user'sneighborhood; and (5) all users. The “What's Hot” criteria differs fromthe most-listened to metric in that “What's Hot” uses recent interest ina content selection (e.g., a delta or acceleration function) while themost-listened to metric represents an absolute metric identifying whatusers are repeatedly interested in.

Partition 330B enables the user to specify an amount of storage forbooks on tape. Options for the books on tape partition may include anoption to receive daily news from the Wall Street Journal, include atleast one book on tape, and fill the remainder of the books on tape withsports features.

Partition 340B enables the user to populate the remainder of the storageavailable on the portable media device with programming entitled“TechTV.”

FIG. 3C illustrates an exemplary UI 300C enabling a user to specifyvariation thresholds for a portable media device. In particular, UI 300Cillustrates how a variation threshold may be specified with respect tothe entire storage capacity of a portable media device and also how thevariation threshold may be specified with respect to partitions that usea portion of the storage capacity of a portable media device. Generally,UI 300C may be used to control variation of content structured by auser's preferences, for example, using the UIs shown in FIGS. 1-3B.However, UI 300C also may be used with other user preference and librarymanagement systems.

As shown, UI 300C includes an overall variation control 310C, a genrevariation control 320C, a personalized variation control 330C, and auser-defined variation control 340C.

Overall variation control 310C provides a single control pane thatenables a user to specify rules requiring variation for overall contentresiding on a portable media device. As shown, the portable media devicemanaged by UI 300C includes 10 GB of storage. Overall variation control310C enables a user to specify a variation threshold by percentage(e.g., 10%, 30%, 50%, and 100%), or by label (e.g., vary a little, afair amount or a great deal). Enabling the user to specify the variationby label allows a user to not consider the precise implications ofvarying by percentage, and also allows the UI provider to specifydefault values for the labels that represent a variation likely to beresponsive to a user's desire (e.g., using previously-performed markettesting). While the percentages and labels shown appear to represent aspectrum of variation, the percentages and labels need not interrelate.For example, the little, fair amount, and great deal labels mayrepresent variation thresholds of 15%, 40%, and 60%, respectively.

In addition, overall variation control 310C also enables the user to (1)vary the songs that the user doesn't like more; (2) vary the songs thatthe user likes more; and (3) vary the songs uniformly. Enabling the userto control the variation based on preference allows the user a degree ofvariation control without requiring the user to establish and configurea partition. For example, a synchronization tool may assimilateexpressed user ratings (e.g., user ranking of a song based on a scale of1-10) and inferred user ratings (e.g., based monitoring user requests,repeats, and skipping of songs) in order to transparently structurecontent into more than one tier of content organized by user preference.Put differently, the user need not be aware of a tiered structure to thecontent. The synchronization tool then may apply different variationthresholds to the different tiers. For example, when the user elects tovary “Songs I like” more, the synchronization tool may set the variationthreshold at 50%, while songs that are not in the “Songs I like” tierhave a variation threshold of 10%.

Genre variation control 320C, personalized variation control 330C, and auser-defined variation control 340C include many of the same variationthreshold controls that were described with respect to overall variationcontrol 310C (e.g., they enable a user to specify a variation thresholdfor a partition by percentage, label, or with respect to userpreference). However, genre variation control 320C, personalizedvariation control 330C, and a user-variation control 340C illustrate howa user may specify different variation thresholds for differentpartitions of content where the user has defined the partition. Notethat partition 1 is allocated by percentage of overall storage,partition 2 is allocated with respect to an absolute threshold ofstorage, while partition 3 is allocated the remaining storage.

Genre variation control 320C includes ROCK, a genre that may be user orsystem defined. Personalized variation control 330C is configured toreflect a user's favorite content. The ‘favorite’ status may bedetermined using explicit or inferred determinations. In addition, the‘favorite status’ may coincide with the “songs I like” determinationsdiscussed previously with respect to overall variation control 310C.However, the personalized variation control 330C may provide a user withmore granularity in control in that the size of the partition and thevariation threshold may be specified more precisely. User-definedvariation control 340C illustrates how the remainder of the storage ofmay be allocated to songs that the user doesn't usually prefer. Byproviding an option to allocate the remainder of the available storage,the user need not precisely map out the requirements for each partition.Rather, a user may configure some partitions with varying degrees ofprecision and configure the remainder of storage with reduced complexityinstructions, if so desired.

A variety of different manners may be used to resolve conflicts arisingfrom configuring the variation threshold. In one implementation, theuser is explicitly notified that a desired variation threshold cannot bereached. For example, when the user specifies a 50% variation thresholdand inadequate content exists to support the desired degree ofvariation, the user may be notified that the desired variation cannot besupported. The notification then may ask the user to change thevariation threshold, ask the user to change to rule defining thepartition with which the variation threshold is set (so as to broad thepool of content available for variation), or indicate that a differentvariation threshold will be used. In another implementation, thesynchronization tool does not notify the user that the desired variationthreshold cannot be realized. Instead, the synchronization tool mayautomatically user a different variation threshold, or automaticallychange to rule defining the partition with which the variation thresholdis set so that content deemed likely to be responsive to the user'sinterest is added to the available pool and the desired variationthreshold may be realized. In one implementation, the specificpercentages may be entered by a user. For example, the user may use aninterface similar to UI 300B to specify a certain percentage of storagefor a certain genre, theme, artist, or mood.

FIG. 4 illustrates an exemplary UI 400 enabling a user to allocatestorage on a portable media device in the event that memory isexhausted. In some implementations, the portable media device mayinclude a content capturing capability, for example, to captureover-the-air content (e.g., radio) or support an onboard camera ormicrophone or to capture content exchanged between peer portable mediadevices (e.g., using a wireless interface). UI 400 includes options to(1) delete selections uniformly from all partitions; (2) specify a rulefor content to be deleted first (e.g., delete country music contentselections first); (3) delete what has been listened to most recently;(4) stop recording; (5) specify a ratio at which content from differentpartitions should be deleted (e.g., 2-1-1-1 to delete two contentselections from partition 1 and one content selection each frompartitions 2-4 or, alternatively, to delete content selections occupyingtwice the storage from partition 1 than is deleted from each ofpartitions 2-4); and (6) swap out recorded content with deleted contentupon synchronization. Deleting content selections uniformly may includeusing a ‘round robin’ approach to deleting content from the partitions.The round robin approach may uniformly delete content on aselection-by-selection basis (e.g., delete one content selection fromeach partition) or on a storage basis (e.g., delete 70 MB from eachpartition regardless of the number of content selections in the 70 MB).Deleting the most recently-listened to content may include usinginternal monitors that track usage on a portable media device such thatthe content selections whose internal monitors indicate the content waslistened to most recently are deleted. Thus, using the “swap outrecorded content” selection, a user may confidently capture content onan ad hoc basis using their portable media device, and then replace thecaptured content with the preferred content once the captured contenthas been uploaded.

FIG. 5 is a block diagram of an exemplary communications system 500 thatincludes a portable media device that may access content on a client anda host. Generally, the portable media device 510 is configured to accesscontent on the client 520 and on the host 540. In particular, the client520 controls the configuration of content loaded to the portable mediadevice 510 from a library on the client 520 and from across network 530on host 540.

Generally, the portable media device 510 includes a miniature mediarendering system operable to render electronic content to a user inmobile environments. For example, the portable media device may includea portable audio or video device that renders audio content throughportable speakers or headphones and video content on a liquid crystaldisplay. In another example, the portable media device 510 includes awireless phone with a built-in media player. In yet another example, theportable media device 510 includes a portable game player.

The portable media device 510 includes some form of storage such as aminiature hard drive or memory bank configured to store content. Thestorage may be self-contained or removable.

The portable media device 510 may include one or more externalinterfaces from which the portable media device receives content.Typically, the external interface is used to receive electronic contentand also software (e.g., firmware) that controls the operation of theportable media device. Examples of the external interface may include,but are not limited to, Universal Serial Bus (USB) and/or FireWireconnections, wireless LAN interfaces (e.g., 802.11(a), (b), (g), or(n)), Personal Area Network connections (e.g., infrared or Bluetooth™),Wide Area Network connections, wireless phone connections, and/orproprietary interfaces. The external interface may be configured toexchange data with a client 520, host 540, and/or other portable mediadevices (not shown).

The portable media device 510 may include a code segment that reportsthe user manipulations to the synchronization tool. The usermanipulations may be used to select content uploaded in subsequentsynchronizations. For example, when a user skips a selection, userdislike may be inferred, while advancing to or repeating a selection maybe used to indicate a user preference for the genre, artist, song, ortempo.

The portable media device 510 may be configured to enable a user topurchase promotional content, for example, while listening to thepromotional content. In one instance, the portable media device 510includes a trusted code segment that unlocks the promotional content onthe promotional device during listening (e.g., through the prepaidpurchase of tokens). In another instance, the content is purchased uponsubsequent synchronization with the library.

The client 520 typically includes a computing device enabling a user toexchange information over a communications network. The client 520 mayinclude one or more devices capable of accessing content residing onportable media device 510 and/or host 540. The client 520 may include acontroller (not shown) that processes instructions received from orgenerated by a software application, a program, a piece of code, adevice, a computer, a computer system, or a combination thereof, whichindependently or collectively direct operations of the client 520. Theinstructions may be embodied permanently or temporarily in any type ofmachine, component, equipment, storage medium, or propagated signal thatis capable of being delivered to the client 520 or that may reside withthe controller at client 520. Client 520 may include a general-purposecomputer (e.g., a personal computer (PC)) capable of responding to andexecuting instructions in a defined manner, a workstation, a notebookcomputer, a PDA (“Personal Digital Assistant”), a wireless phone, acomponent, other equipment, or some combination of these items that iscapable of responding to and executing instructions.

In one implementation, the client 520 includes one or more informationretrieval software applications (e.g., a browser, a mail application, aninstant messaging client, an Internet service provider client, or an AOLTV or other integrated client) capable of receiving one or more dataunits. The information retrieval applications may run on ageneral-purpose operating system and a hardware platform that includes ageneral-purpose processor and specialized hardware for graphics,communications and/or other capabilities. In another implementation,client 520 may include a wireless telephone running a micro-browserapplication on a reduced operating system with general purpose andspecialized hardware capable of operating in mobile environments.

The client 520 may include one or more media applications. For example,the client 520 may include a software application that enables theclient 520 to receive and display an audio or video data stream. Themedia applications may include controls that enable a user to configurethe user's media environment. For example, if the media application isreceiving an Internet radio station, the media application may includecontrols that enable the user to select an Internet radio station, forexample, through the use of “preset” icons indicating the station genre(e.g., country) or a favorite.

The network 530 typically includes hardware and/or software capable ofenabling direct or indirect communications between the client 520 andthe host 540. As such, the network 530 may include a direct link betweenthe client 520 and the host 540, or it may include one or more networksor subnetworks between them (not shown). Each network or subnetwork mayinclude, for example, a wired or wireless data pathway capable ofcarrying and receiving data. Examples of the delivery network includethe Internet, the World Wide Web, a WAN (“Wide Area Network”), a LAN(“Local Area Network”), analog or digital wired and wireless telephonenetworks, radio, television, cable, satellite, and/or any other deliverymechanism for carrying data.

The host 540 generally includes one or more devices configured todistribute digital content. Typically, a host 540 includes a collectionor library of content for distribution. Alternatively, or in addition,the host 540 may convert a media source (e.g., a video or audio feed)into a feed of data units for transmission across the network 530. Thehost 540 may include a general-purpose computer having a centralprocessor unit (CPU), and memory/storage devices that store data andvarious programs such as an operating system and one or more applicationprograms. Other examples of a host 540 includes a workstation, a server,a special purpose device or component, a broadcast system, otherequipment, or some combination thereof capable of responding to andexecuting instructions in a defined manner. The host 540 also mayinclude an input/output (I/O) device (e.g., video and audio input andconversion capability), and peripheral equipment such as acommunications card or device (e.g., a modem or a network adapter) forexchanging data with the network 530.

The host 540 is generally capable of executing instructions under thecommand of a controller. The host 540 may be used to provide content tothe client 520. The controller may be implemented by a softwareapplication loaded on the host 540 for commanding and directingcommunications exchanged with the client 520. Other examples of thecontroller include a program, a piece of code, an instruction, a device,a computer, a computer system, or a combination thereof, forindependently or collectively instructing the client 520 or the host 540to interact and operate as described. The host 540 may be embodiedpermanently or temporarily in any type of machine, component, physicalor virtual equipment, storage medium, or propagated signal capable ofproviding instructions to the client 520 or the host 540.

The host 540 may be configured to store content for the portable mediadevice 510. In one implementation, the host 510 represents a centralrepository that stores a user's content. The host 510 then may beconfigured to enable user access to the user's library regardless ofwhether the user is using or is in proximity to a user's client. Inanother implementation, the host 540 represents a robust content store.The host 540 may be configured to provide Internet radio streams, enablea user to purchase a content selection, and enable access to promotionalcontent.

FIG. 6 is a block diagram of an exemplary content management system 600for a portable media device. Typically, the content management system600 includes one or more code segments running on a portable mediadevice and/or a client that configures the content loaded to theportable media device. As shown, the content management system 600includes a content library 610, a portable media device interface 620, acontent loader 630, a rule library 650, a rule engine 650, and acommunications interface 660.

The content library 610 includes the library of content available forloading to the portable media device through the portable media deviceinterface 620. The content library 610 may organize content by genre,artist, actor, album, song title, popularity, ratings, encoding format(e.g., NSV or MP3), mood, relation to other content selection, effect onother content selection, or other criteria. The content library mayinclude audio, video, images, electronic games, and/or other types ofcontent.

The portable media device interface 620 includes an interface configuredto add or remove content selections from the portable media device.Examples of the portable media device interface 620 include, but are notlimited to, an Ethernet, Firewire, or USB connector, a wirelessinterface (e.g., Bluetooth, TDMA or 802.11(b)), or a flash memorysocket.

The content loader 630 includes a code segment configured to add orremove content from the portable media device using the portable mediadevice interface 620. The content loader may receive instructions from arule engine 650 that determines which content should be added or removedusing, for example, variation criteria or other rules specifying whichcontent selections should be loaded on the portable media device.

The rule library 640 includes a collection of one or more rules that maybe used by the rule engine 650 to determine which content selectionsshould be loaded to the portable media device. Examples of the ruleswere generally described previously with respect to FIGS. 1-5. In oneimplementation, the rules include rules explicitly provided by the user.In another implementation, the rules represent an assimilation ofpreferences provided by the user.

The rule engine 650 includes a code segment configured to determinewhich content selections should be loaded to the portable media deviceinterface. Generally, the rule engine 650 is configured to ensure thatthe rules provided by the user are reflected in the content loaded tothe portable media device.

The rule engine 650 may be configured to use a weighting system todetermine which content should be loaded onto a portable media device,and how the content on the portable media device should be variedaccording to user specification.

For example, the rule engine 650 may develop a metric for contentselections in the user's content library 610. The metric may be based ona user's express or inferred preferences. For example, and as discussedpreviously with respect to FIG. 2, when the user selects their favoritecontent selections to be “preferred over everything else”, the maximummetric (e.g., 10 on a scale of 10) may be assigned to those favoritecontent selections identified as such. Content selections identified asstrongly favored may be identified with a slightly smaller metric (e.g.,a 9 out of 10). Preferred content selections may receive an even smallermetric (e.g., a 7/10), while “OK” and “OK occasionally” contentselections would receive even smaller metrics (e.g., a 5 and 2,respectively).

With the content selections in the content library assigned a metric,the content selections may be ranked. In one implementation, the contentselections are ranked across all available content selections. Inanother implementation, the content selections are ranked with respectto a particular criteria (e.g., ranked according criteria designated fora partition, genre, or user-specified rule).

With the content ranked, a configuration may be generated to determinewhich content selections should be loaded to the portable media device.In one implementation, the content selections with the highest metricsare loaded to the content library. Such an implementation would likelyinclude all the content selections ranked “prefer over everything else”,unless limited storage created a storage conflict between contentselections so designated. In the event of a storage conflict, a numberof different models may be used to resolve the conflict. In one model,the storage conflict is resolved by favoring the most-listened tocontent selections. In a second model, the storage conflict is resolvedby favoring least recently-listened content selections. Other models maybe used, such as intercontent selection factors.

Implementations other than using the highest ranking metric may be used.For example, another implementation may allocate storage by differenttiers. A first tier may be allocated a specified amount of storage(e.g., 50%) for content selections in a first range (e.g., above 8 on a10 point scale). A second tier may be allocated a second amount ofstorage (e.g., 30%) for content selections whose metric falls in asecond range (e.g., between 5 and 8), and a third tier may be allocateda third amount of storage (e.g., the remainder except for promotionalmaterial) for content selections whose metric falls within a third range(e.g., less than 5). It may be advantageous to select content selectionsfrom different tiers of metrics to provide better exposure for somecontent selections that might not otherwise be loaded to the portablemedia device.

In yet another implementation, the metrics are adjusted to reflect otherpriorities and influences. For example, the metric may be adjusted tobetter vary content. The metric may be adjusted by decrementing thecontent selection after a listen. The amount of decrementing may bebased upon whether a user fast-forwarded or skipped through the contentselection (e.g., likely to reduce a greater amount) or repeatedlistening to the content selection (e.g., likely to minimally reduce, ifat all). The amount of decrementing also may be based on the user'sreaction to similar content (e.g., content selections in the same genre,on the same album, or by the same artist). With other factors beingequal, decrementing the metric in response to user activity would varythe content loaded to the portable media device as the metric forcontent selections originally loaded to the portable media device wouldeventually fall below the metric for content selections not originallyloaded to the portable media device. A metric for a content selectionmay periodically be refreshed so that a content selection with adecremented metric is eventually eligible for reconsideration.Refreshing may be performed in response to removal of the contentselection from the portable media device, after the expiration of a timewindow, in response to other events, and/or under other conditions.

In still another implementation, the metric is adjusted by a randomfactor. For example, the metric for one or more content selections maybe modified by randomly adding or subtracting a random or predeterminednumber to the metric. When the metric is modified by a predeterminednumber, the predetermined number may based on the user's preference forthe underlying content selections. For example, favored content may beadjusted by a lesser amount, while less popular content may be adjustedby a greater amount. It may be advantageous to adjust the metric by therandom factor in order to introduce greater variations of content in theportable media device over time. If the user indicates a desire forgreater or less variation, the degree of randomness can be adjusted inresponse.

Generally, the communications interface 660 may be used to enable accessto content selections stored on other devices, such as an online musicstore or a server. The communications interface 660 may interface withthe rule engine 650 to retrieve content responsive to the rules (e.g.,promotional content). Although the communications interface 660 thatinterfaces with external systems and the portable media device interface620 was described as interfacing with the portable media device, theportable media device 620 and the communications interface 660 may usethe same module to access both external systems and the portable mediadevice. For example, a wireless phone network may be used to managecontent on a wireless phone and to access an online music store throughthe wireless interface.

FIG. 7 is a flow chart 700 of an exemplary process by which contentselections are loaded to a portable media device. Generally, theoperations shown in flow chart 700 may be used in conjunction with thesystems and configurations described earlier in FIGS. 1-6. For example,the rules may be generated using the UIs shown in FIGS. 1-4. Similarly,the systems used in flow chart 700 may use the underlying systems andcomponentry described with respect to FIGS. 5 and 6. For convenience,particular components and messaging formats described earlier arereferenced as performing the process. However, similar methodologies maybe applied in other implementations where different components are usedto define the structure of the system, or where the functionality isdistributed differently among the components shown.

Initially, the client 701 identifies a library of one or more contentselections (710). For example, the client 701 may access contentselections from optical disks that have been recorded onto a PC's harddrive. The client 701 accesses one or more rules related to userpreferences for content (715). For example, the client 701 may present aseries of UIs shown in FIGS. 1-4. The client 701 structures the libraryof one or more content selections based on the rules to define at leastone group of content selections of interest to the user (720). Forexample, the songs in a music library may be assigned metrics using,e.g., the rule engine and rule library described in FIG. 6. The songsmay in turn be sorted across one or more partitions or tiers todeveloping a ranking of songs. The client 701 determines a storagecapability for the portable media device (725). The client 701 maydetermine that a locally-attached portable media device has 10 GB ofstorage available. The client 701 generates a first configuration forthe portable media device, wherein the first configuration indicates afirst subset of content selections from among the group of contentselections of interest to be loaded to the portable media device (730).For example, generating the first configuration may include relating therank ordered list of songs in one or more partitions to the storagecapability to determine a user's relative preferences for which contentshould be loaded to the portable media device. A configurationidentifies which content should loaded onto the portable media device.Generally, the configuration reflects the user's explicit and implicitpreferences. Explicit preference may include a user indication that aparticular genre, artist, or content selection if favored. Implicitpreferences may include those actions made for a user's benefit wherethe user did not explicitly select the genre, artist, or contentselection. Examples of implicit preferences include varying the contentselections loaded to the portable media device. While the user may nothave endorsed or favored the content selections introduced as a resultof the variation, the user did endorse a variation regime thatintroduced both favored and disfavored content. Another example of animplicit preference is including promotional material determined to beconsistent with a user's preferences (e.g., because the user prefers thegenre or artist associated with the promotional material).

The client 701 accesses one or more additional rules related to userpreferences requiring variation of content to be loaded to the portablemedia device (735). For example, the client may access rules withdifferent variation thresholds, such as those shown in FIG. 3C. During asubsequent connection between the portable media device and the library,the client 701 generates a second configuration for the portable mediadevice, wherein the second configuration indicates a second subset ofcontent selections from among the group of content selections ofinterest to be loaded to the portable media device, the second subsetdiffering from the first subset in accordance with the one or moreadditional rules requiring variation of the content selections loaded tothe portable media device (740). As a result of receiving theconfiguration, the portable media device 702 loads content selectionsconsistent with the rules requiring variation. For example, content in afirst partition may be varied by 50% so that 50% of the songs appearingin the second configuration remain from a first configuration and 50% ofthe songs in the second configuration are different from the firstconfiguration

FIG. 8 is a flow chart 800 of an exemplary process by which a clientloads content to a portable media device. Generally, flow chart 800relates to the systems, configurations, and operations described earlierwith respect to FIGS. 1-7. However, flow chart 700 illustrates a processby which conflicts are resolved using intercontent selection factors andalso illustrates how a portable media device may be used to purchasepromotional content.

For convenience, particular components and messaging formats describedearlier are referenced as performing the process. However, similarmethodologies may be applied in other implementations where differentcomponents are used to define the structure of the system, or where thefunctionality is distributed differently among the components shown.

Initially, the client 801 loads the local library (810). Loading thelibrary may include accessing a collection of digitized music on apersonal computer. The client 801 and the portable media device 802determine that the portable media device can store 30 GB (815). Theclient 801 prompts the user for rules with storage preferences (820).For example, the user may be asked to complete UIs similar to the UIsshown in FIGS. 1-4. The rules are developed for a metric for songs inthe library (825). For example, a rule engine may assign a metric forcontent selections in the content library using the system of metricssimilar to the system of metrics described with respect to the ruleengine 650 in FIG. 6. The metric is adjusted for intercontent selectionfactors (830). In one example, the metric is used to achieve a desiredvariation (e.g., 30%). In another example, the metric is adjusted toreflect a user's preferences or dislikes for related content (e.g., aBob Dylan fan would likely favor the Grateful Dead).

Conflicts are identified and resolved (835). In one example, the client701 may determine that inadequate storage exists. As a result, theclient 701 may use a metric for content selections to determine whichcontent is loaded onto a portable media device.

The host 803 provides promotional content (840) to the portable mediadevice 820, which in turn, receives the promotional content (845). Forexample, an online music provider may enable limited access to one ormore content selections in order to induce the user to purchase thecontent selections. The online music provider may provide the contentwith permissions that only enable to the content a threshold number oftimes and/or for a threshold period of time. A configuration is loadedand a playlist is assembled (850). The portable media device receivesthe playlist and the configuration with the content selections. In thecourse of rendering content, the portable media device plays promotionalcontent (860). The portable media device 802 receives a purchaseinstruction (865). For example, a user may select a menu option on theportable media device 802 indicating an intent to purchase thepromotional content selection. In some implementations, the portablemedia device 802 lacks the communications capability to directly executethe transaction. As a result, the portable media device 802 may beconfigured to provide the purchase instruction while synchronizing witha client 801 (not shown). In particular, the client 801 establishes atransaction gateway (870) so that the host 803 may execute thetransaction (875). For example, the client 801 may access an electronicwallet or electronic credit account and transmit an instruction that theuser elects to purchase the promotional content. The host 803 may inturn authorize full access to the promotional content so that thepromotional content fully joins the content library.

Other implementations are within the scope of the following claims. Forexample, although the portable media device was described as using aclient to purchase promotional content from a host, the portable mediadevice also may be configured to directly interface with a host. In oneimplementation, simplified rules are used to increase the ease ofmanaging content and its variation on a portable media device, which mayincrease overall enjoyment by using sophisticated backend variationalgorithms while reducing the time and effort required of a user. Incontrast, in another implementation, a user may precisely tailor therules using a complex rule set so that available content on the portablemedia device is more particularly tailored to a user's interest.

The rules requiring variation may vary the content selections betweenfirst and second configurations based on criteria other than dynamicupdates to the library. For example, a library on a personal computermay be dynamically updated as the user adds additional content. Theadditional content may be analyzed using user preferences so that theadditional content would be added to the portable media device.Notwithstanding changes to library as a result of the additionalcontent, the rules requiring variation based on criteria other than theaddition of content to the library. For example, the variation thresholdmay require that 50% of songs present in a first configuration beremoved from a second configuration, or, alternatively, that 70% of thesongs present in a first configuration also appear in a secondconfiguration.

I claim:
 1. A method comprising: identifying, by at least one processorof a client device, at least one user-defined rule for selection ofcontent; determining, by the at least one processor of the clientdevice, content selections from a user content library on the clientdevice that meet the at least one user-defined rule; generating a groupof content selections including the determined content selections thatmeet the at least one user-defined rule; detecting, by the at least oneprocessor of the client device, that additional content has beendownloaded to the user content library on the client device from aserver over a network; determining, by the at least one processor of theclient device in response to the detected additional content and withouta user request, additional content selections from the additionalcontent that meet the at least one user-defined rule; and adding, by theat least one processor of the client device, the content selections fromthe determined additional content selections that meet the at least oneuser-defined rule to the group of content selections.
 2. The method asrecited in claim 1, further comprising monitoring user interaction withcontent selections in the content library.
 3. The method as recited inclaim 2, wherein monitoring user interaction with content selectionscomprises monitoring a number of times content selections are played,skipped, or repeated.
 4. The method as recited in claim 3, wherein theat least one user-defined rule specifies a threshold popularity based onthe number of times content sections are played.
 5. The method asrecited in claim 4, wherein a second user-defined rule specifies a genreor mood.
 6. The method as recited in claim 1, further comprising:syncing the group of content selections from the client device to aportable player; detecting that the additional content is downloaded tothe user content library after syncing to the portable player; andsyncing the additional content selections that meet the at least oneuser-defined rule from the client device to the portable player.
 7. Themethod as recited in claim 6, further comprising: monitoring userinteraction with content selections on the portable player; and updatingthe group of content selections by determining content selections fromthe user library that meet a threshold popularity defined by the atleast one user-defined rule based on the monitored user interaction withthe content selections on the portable player and monitored userinteraction with the content selections in the content library.
 8. Themethod as recited in claim 1, wherein the content selections comprisevideos.
 9. The method as recited in claim 1, wherein the contentselections comprise audio files.
 10. A non-transitory computer-readablestorage medium including a set of computer-executable instructions that,when executed by at least one processor of a computer system, cause thecomputer system to: identify at least one user-defined rule forselection of content; determine content selections from a user contentlibrary on a client device that meet the at least one user-defined rule;generating a group of content selections including the determinedcontent selections that meet the at least one user-defined rule; detectthat additional content has been downloaded to the user content libraryon the client device from a server over a network; determine, inresponse to the detected additional content and without a user request,additional content selections from the additional content that meet theat least one user-defined rule; and add the content selections from thedetermined additional content selections that meet the at least oneuser-defined rule to the group of content selections.
 11. Thenon-transitory computer-readable storage medium as recited in claim 10,wherein the instructions, when executed by the at least one processor,further cause the system to monitor user interaction with contentselections in the content library.
 12. The non-transitorycomputer-readable storage medium as recited in claim 11, whereinmonitoring user interaction with content selections comprises monitoringa number of times content selections are played, skipped, or repeated.13. The non-transitory computer-readable storage medium as recited inclaim 12, wherein the at least one user-defined rule specifies contentsections that are played the most.
 14. The non-transitorycomputer-readable storage medium as recited in claim 13, wherein asecond user-defined rule specifies a genre or mood.
 15. A methodcomprising: identifying, by at least one processor of a client device, aselection by a user of a piece of content from a content library on theclient device; determining, by the at least one processor of the clientdevice, content selections related to the user-selected piece ofcontent; generating a group of content selections including the contentselections determined to be related to the user-selected piece ofcontent; detecting, by the at least one processor of the client device,that additional content has been downloaded to the content library onthe client device from a server over a network; determining, by the atleast one processor of the client device in response to the detectedadditional content and without a user request, additional contentselections from the additional content that are related to theuser-selected piece of content; and adding, by the at least oneprocessor of the client device, the content selections from thedetermined additional content selections related to the user-selectedpiece of content to the group of content selections.
 16. The method asrecited in claim 15, wherein generating the group of content selectionscomprises grouping a predetermined number of the content selectionsdetermined to be related to the user-selected piece of content, thepredetermined number being specified by the user.
 17. The method asrecited in claim 15, wherein determining content selections related tothe user-selected piece of content comprises identifying contentselections with a same genre, a same artist, a same tempo, or a sametheme as the user-selected piece of content.
 18. The method as recitedin claim 15, wherein determining content selections related to theuser-selected piece of content comprises identifying content selectionsfrom the content library, the content library being associated with theuser.
 19. The method as recited in claim 15, wherein determining contentselections related to the user-selected piece of content comprisesidentifying promotional content not in the content library.
 20. Themethod as recited in claim 19, further comprising: providing auser-selectable option to purchase the promotional content; andreceiving a selection from the user of the option to purchase thepromotional content; and adding the promotional content to the contentlibrary.